package visaoInterface;

import dao.DaoCliente;
import dao.DaoTipoVeiculo;
import dao.DaoVeiculo;
import javax.swing.JOptionPane;

public class InterfacePrincipal extends javax.swing.JDialog {
    
    boolean veic = true;
    boolean clien = false;
    int permissao = 0;

    public int getPermissao() {
        return permissao;
    }

    public void setPermissao(int permissao) {
        this.permissao = permissao;
    }


    /** Creates new form InterfacePrincipal */
    public InterfacePrincipal(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMCadastros = new javax.swing.JMenu();
        jMIClientes = new javax.swing.JMenuItem();
        jMIFuncionarios = new javax.swing.JMenuItem();
        jMITipoVeiculos = new javax.swing.JMenuItem();
        jMIVeiculos = new javax.swing.JMenuItem();
        jMILogin = new javax.swing.JMenuItem();
        jMLocacoes = new javax.swing.JMenu();
        jMICriarLocacao = new javax.swing.JMenuItem();
        jMIFinalizaLocacao = new javax.swing.JMenuItem();
        jMRegistros = new javax.swing.JMenu();
        jMIRPesquisarClientes = new javax.swing.JMenuItem();
        jMIRVeiculosDisponiveis = new javax.swing.JMenuItem();
        jMIRMaisRentaveis = new javax.swing.JMenuItem();
        jMIRMaisProcurados = new javax.swing.JMenuItem();
        jMSair = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/visaoInterface/logotipoLocarrao.jpg"))); // NOI18N

        jMCadastros.setText("Cadastros");

        jMIClientes.setText("Clientes");
        jMIClientes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMIClientesActionPerformed(evt);
            }
        });
        jMCadastros.add(jMIClientes);

        jMIFuncionarios.setText("Funcionários");
        jMIFuncionarios.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMIFuncionariosActionPerformed(evt);
            }
        });
        jMCadastros.add(jMIFuncionarios);

        jMITipoVeiculos.setText("Tipo de Veículos");
        jMITipoVeiculos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMITipoVeiculosActionPerformed(evt);
            }
        });
        jMCadastros.add(jMITipoVeiculos);

        jMIVeiculos.setText("Veículos");
        jMIVeiculos.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jMIVeiculosMouseClicked(evt);
            }
        });
        jMIVeiculos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMIVeiculosActionPerformed(evt);
            }
        });
        jMCadastros.add(jMIVeiculos);

        jMILogin.setText("Login");
        jMILogin.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMILoginActionPerformed(evt);
            }
        });
        jMCadastros.add(jMILogin);

        jMenuBar1.add(jMCadastros);

        jMLocacoes.setText("Locações");

        jMICriarLocacao.setText("Criar Locação");
        jMICriarLocacao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMICriarLocacaoActionPerformed(evt);
            }
        });
        jMLocacoes.add(jMICriarLocacao);

        jMIFinalizaLocacao.setText("Finalizar Locação");
        jMIFinalizaLocacao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMIFinalizaLocacaoActionPerformed(evt);
            }
        });
        jMLocacoes.add(jMIFinalizaLocacao);

        jMenuBar1.add(jMLocacoes);

        jMRegistros.setText("Registros");
        jMRegistros.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMRegistrosActionPerformed(evt);
            }
        });

        jMIRPesquisarClientes.setText("Pesquisar clientes");
        jMIRPesquisarClientes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMIRPesquisarClientesActionPerformed(evt);
            }
        });
        jMRegistros.add(jMIRPesquisarClientes);

        jMIRVeiculosDisponiveis.setText("Veículos disponíveis");
        jMIRVeiculosDisponiveis.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMIRVeiculosDisponiveisActionPerformed(evt);
            }
        });
        jMRegistros.add(jMIRVeiculosDisponiveis);

        jMIRMaisRentaveis.setText("Veículos mais rentáveis");
        jMIRMaisRentaveis.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMIRMaisRentaveisActionPerformed(evt);
            }
        });
        jMRegistros.add(jMIRMaisRentaveis);

        jMIRMaisProcurados.setText("Veículos mais procurados");
        jMIRMaisProcurados.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMIRMaisProcuradosActionPerformed(evt);
            }
        });
        jMRegistros.add(jMIRMaisProcurados);

        jMenuBar1.add(jMRegistros);

        jMSair.setText("Sair");
        jMSair.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jMSairMouseClicked(evt);
            }
        });
        jMSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMSairActionPerformed(evt);
            }
        });
        jMenuBar1.add(jMSair);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 377, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

        
        
        
private void jMICriarLocacaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMICriarLocacaoActionPerformed
     if (getPermissao() != 3){
     DaoVeiculo dv = new DaoVeiculo();
     DaoCliente dc = new DaoCliente();
     if ((dv.tabelaBDehVazia()) || (dc.tabelaBDehVazia())){
        JOptionPane.showMessageDialog(null, "Nenhum veiculo ou cliente cadastrado.");
     }else{
        CriaLocacao cl = new CriaLocacao(this, true);
        cl.setVisible(true);
     }
     }else{
         JOptionPane.showMessageDialog(null, "Voce não tem permissão para executar esta ação.");
     }
}//GEN-LAST:event_jMICriarLocacaoActionPerformed

private void jMSairMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMSairMouseClicked
        System.exit(0);
}//GEN-LAST:event_jMSairMouseClicked

private void jMSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMSairActionPerformed
        System.exit(0);        
}//GEN-LAST:event_jMSairActionPerformed

private void jMIFinalizaLocacaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIFinalizaLocacaoActionPerformed
        if (getPermissao() != 3){
        FinalizarLocacao fl = new FinalizarLocacao(this, true);
        fl.setVisible(true);   
            
        }else{
            JOptionPane.showMessageDialog(null, "Voce não tem permissão para executar esta ação.");
        }
}//GEN-LAST:event_jMIFinalizaLocacaoActionPerformed
                                                


private void jMIRVeiculosDisponiveisActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIRVeiculosDisponiveisActionPerformed

        DaoTipoVeiculo dtv = new DaoTipoVeiculo();
        if (dtv.tabelaBDehVazia()){
            JOptionPane.showMessageDialog(null, "Nenhum tipo de veiculo cadastrado.");
        }else{
        RegistroVeiculosDisponiveis rvd = new RegistroVeiculosDisponiveis(this, true);
        rvd.setVisible(true);
        }
       
 
}//GEN-LAST:event_jMIRVeiculosDisponiveisActionPerformed

private void jMRegistrosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMRegistrosActionPerformed

    
}//GEN-LAST:event_jMRegistrosActionPerformed

private void jMIRPesquisarClientesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIRPesquisarClientesActionPerformed
        RegistroCliente rc = new RegistroCliente(this, true);
        rc.setVisible(true);
}//GEN-LAST:event_jMIRPesquisarClientesActionPerformed

private void jMILoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMILoginActionPerformed
        if (getPermissao() == 1){
        ChamaLogin cl = new ChamaLogin(this, true);
        cl.setVisible(true);
        }else{
        JOptionPane.showMessageDialog(null, "Voce não tem permissão para executar esta ação.");
        }
}//GEN-LAST:event_jMILoginActionPerformed

private void jMIVeiculosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIVeiculosActionPerformed
        if (getPermissao() != 3){
        DaoTipoVeiculo dtv = new DaoTipoVeiculo();
        if (dtv.tabelaBDehVazia()){
            JOptionPane.showMessageDialog(null, "Nenhum tipo de veiculo cadastrado.");
        }else{
            JOptionPane.showMessageDialog(null, "No campo Km Atual decimais devem ser separados por ponto. Ex.: 123.45");
        ChamaVeiculo cv = new ChamaVeiculo(this, true);
        cv.setVisible(true);
        }
        }else{
            JOptionPane.showMessageDialog(null, "Voce não tem permissão para executar esta ação.");
        }
}//GEN-LAST:event_jMIVeiculosActionPerformed

private void jMIVeiculosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMIVeiculosMouseClicked
        
}//GEN-LAST:event_jMIVeiculosMouseClicked

private void jMITipoVeiculosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMITipoVeiculosActionPerformed
        if (getPermissao() != 3){
        JOptionPane.showMessageDialog(null, "Obs.: Numero decimais devem ser separados por ponto. Ex.: 123.45");
        ChamaTipoVeiculo ctv = new ChamaTipoVeiculo(this, true);
        ctv.setVisible(true);
        }else{
            JOptionPane.showMessageDialog(null, "Voce não tem permissão para executar esta ação.");
        }
}//GEN-LAST:event_jMITipoVeiculosActionPerformed

private void jMIFuncionariosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIFuncionariosActionPerformed
        if (getPermissao() != 3){
        ChamaFuncionario cf = new ChamaFuncionario(this, true);
        cf.setVisible(true);
        }else{
            JOptionPane.showMessageDialog(null, "Voce não tem permissão para executar esta ação.");
        }
}//GEN-LAST:event_jMIFuncionariosActionPerformed

private void jMIClientesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIClientesActionPerformed
        if (getPermissao() != 3){
        ChamaCliente cc = new ChamaCliente(this, true);
        cc.setVisible(true);
        }else{
            JOptionPane.showMessageDialog(null, "Voce não tem permissão para executar esta ação.");    
        }
}//GEN-LAST:event_jMIClientesActionPerformed

private void jMIRMaisRentaveisActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIRMaisRentaveisActionPerformed
        VeiculosMaisRentaveis vmr = new VeiculosMaisRentaveis(this, true);
        vmr.setVisible(true);
}//GEN-LAST:event_jMIRMaisRentaveisActionPerformed

private void jMIRMaisProcuradosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIRMaisProcuradosActionPerformed
        VeiculosMaisProcurados vmp = new VeiculosMaisProcurados(this, true);
        vmp.setVisible(true);
}//GEN-LAST:event_jMIRMaisProcuradosActionPerformed


    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(InterfacePrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(InterfacePrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(InterfacePrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(InterfacePrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the dialog */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                InterfacePrincipal dialog = new InterfacePrincipal(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {

                    @Override
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JMenu jMCadastros;
    private javax.swing.JMenuItem jMIClientes;
    private javax.swing.JMenuItem jMICriarLocacao;
    private javax.swing.JMenuItem jMIFinalizaLocacao;
    private javax.swing.JMenuItem jMIFuncionarios;
    private javax.swing.JMenuItem jMILogin;
    private javax.swing.JMenuItem jMIRMaisProcurados;
    private javax.swing.JMenuItem jMIRMaisRentaveis;
    private javax.swing.JMenuItem jMIRPesquisarClientes;
    private javax.swing.JMenuItem jMIRVeiculosDisponiveis;
    private javax.swing.JMenuItem jMITipoVeiculos;
    private javax.swing.JMenuItem jMIVeiculos;
    private javax.swing.JMenu jMLocacoes;
    private javax.swing.JMenu jMRegistros;
    private javax.swing.JMenu jMSair;
    private javax.swing.JMenuBar jMenuBar1;
    // End of variables declaration//GEN-END:variables
}
